<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>protokol</title>
    <meta name="generator" content="muse.el">
    <meta http-equiv="Content-Type"
          content="text/html; charset=utf-8">
    <style type="text/css">
body {
  background: white; color: black;
  margin-left: 3%; margin-right: 7%;
}

p { margin-top: 1% }
p.verse { margin-left: 3% }

.example { margin-left: 3% }

h2 {
  margin-top: 25px;
  margin-bottom: 0px;
}
h3 { margin-bottom: 0px; }
    </style>
  </head>
  <body>
    <h1>protokol</h1>
    <!-- Page published by Emacs Muse begins here -->
<h2>Протокол</h2>

<h3>Структура пакета</h3>

<ol>
<li>Код команды (1 байт)

<ul>
<li>запрос на чтение данных = 0x10</li>
<li>запрос на запись данных = 0x20</li>
<li>сообщение с данными измерений = 0x30</li>
</ul></li>
<li>Блок: характеристики команды

<ul>
<li>Количество повторов команды (2 байта)</li>
<li>Задержка между повторами, миллисекунды (2 байта)</li>
<li>Сетевой протокол для ответа (1 байт)

<ol>
<li>UDP = 1</li>
<li>TCP = 2</li>
</ol></li>
</ul></li>
<li>Блок: информация об источнике

<ul>
<li>IP (4 байта)</li>
<li>Имя (16 байт)</li>
<li>Протокол (1 байт)</li>
<li>Timestamp (4 байта)</li>
</ul></li>
<li>Блок данных (тип данных определяется на основе кода команды)</li>
</ol>


<h3>Блок данных: состояние датчика</h3>

<ol>
<li>Имя Lego установки (16 байт)</li>
<li>Тип датчика (1 байт)</li>
<li>Номер датчика (1 байт)</li>
<li>Формат данных (1 байт)

<ul>
<li>0x10 = в сыром виде</li>
</ul></li>
<li>Данные измерений (до 25 байт)</li>
</ol>




<!-- Page published by Emacs Muse ends here -->
  </body>
</html>
